// 从键盘输入 n 和 m，球从 n 米落下，每次反弹至原高度的 1/4
// 输出第 m 次落地时的总路程和第 m 次落地后反弹高度，均保留两位小数
#include <stdio.h>

int main(void)
{
    int n, m;
    if (scanf("%d %d", &n, &m) != 2) {
        return 0;
    }
    if (n <= 0 || m <= 0) {
        // 题目未定义异常输入的行为，这里不输出以避免误判
        return 0;
    }

    double total = (double)n;      // 第一次下落
    double bounce = (double)n / 4.0; // 第一次反弹高度

    // 之后的 m-1 次落地，每次经历上升 + 下降（2 * bounce）
    for (int i = 1; i <= m - 1; ++i) {
        total += 2.0 * bounce;
        bounce /= 4.0; // 下一次反弹高度
    }

    // 此时 bounce 为第 m 次落地后的反弹高度
    printf("%.2f\n%.2f", total, bounce);
    return 0;
}